14 research outputs found
CSM-473: Design Mining in LePUS3/Class-Z:Search Space and Abstraction/Concretization Operators
LePUS3 is a specification and modelling language designed to capture the building blocks of O-O design at different levels of abstraction. We identify the set of LePUS3 specifications that agree with (are satisfied by) an O-O program (represented by a LePUS3 design model) as the search space for a host of design mining problems such as: reverse engineering, design recovery, design pattern detection, design pattern discovery. We show that this search space is a mathematical lattice (with relation to a particular program) and we demonstrate how it can be
traversed using a set of abstraction and concretization operators
Automated Verification of Design Patterns with LePUS3
Specification and [visual] modelling languages are expected to combine strong abstraction mechanisms with rigour, scalability, and parsimony. LePUS3 is a visual, object-oriented design description language axiomatized in a decidable subset of the first-order predicate logic. We demonstrate how LePUS3 is used to formally specify a structural design pattern and prove (‗verify‘) whether any JavaTM 1.4 program satisfies that specification. We also show how LePUS3 specifications (charts) are composed and how they are verified fully automatically in the Two-Tier Programming Toolkit
CSM-472: The 'Gang of Four' Companion
This document demonstrates how the informal specifications of the design patterns the 'Gang of Four' seminal catalogue [Gamma et al 1995] can be specified formally using the LePUS3 and Class-Z object-oriented Architecture
Description Languages
LePUS3: An Object-Oriented Design Description Language
LePUS3 [1] (lepus.org.uk) is a logic, visual, object-oriented Design Description Language: a formal specification language designed to capture and convey the building-blocks of object-oriented design. LePUS3 minimal vocabulary constitutes of abstraction mechanisms that can specify effectively and precisely design patterns and the design of JavaTM (C++, Smalltalk, etc.) programs at any level of abstraction
CSM-474: LePUS3 and Class-Z Reference Manual
This document formally defines the elements in the syntax and the semantics of LePUS3 and the Class-Z specification languages. It was designed to satisfy the rigid requirements of mathematical logic, and it is therefore unsuitable for learning LePUS3 and Class-Z. More suitable for this purpose will be the book "Object-Oriented
Modelling" [Eden under preparation]. A legend offering a key to the language's symbols is also available
The design navigator
The Design Navigator is a semi-automated design mining tool
which reverse engineers LePUS3 design charts from Javaâ„¢ 1.4
programs at any level of abstraction in reasonable time. We demonstrate the Design Navigator’s step-wise charting process of Java Foundation Classes, generating decreasingly abstract charts of java.awt and discovering building-blocks in its design
CSM-471: Abstract Semantics for Java 1.4 Programs
This document is a compendium of examples that describe the entities and relations that represent the abstract semantics (finite structures) of programs in the JavaTM programming language. It is designed to provide further explanation to the definitions given in the LePUS3 and Class-Z Reference manual [Eden et al. 2007].
To remind the reader, a finite structure is a simplified ('abstracted') picture of the program, which 'flattens' the knotty structure and syntax of the source code into a set of primitive entities (also called entities of dimension 0) and relations. Essentially, each finite structure can be viewed as a relational database, or a set of tables which contain tuples of entities ('records'). Below we list a few sample Java programs and the finite structure that represents them
Design navigation : Recovering design charts from object-oriented programs
EThOS - Electronic Theses Online ServiceGBUnited Kingdo